1. Field of the Invention
The present invention relates to signal processing and, more specifically but not exclusively, to linearizing non-linear systems, such as non-linear amplifiers, using digital pre-distortion.
2. Description of the Related Art
Introduction
This section introduces aspects that may help facilitate a better understanding of the invention. Accordingly, the statements of this section are to be read in this light and are not to be understood as admissions about what is prior art or what is not prior art.
FIG. 1 shows a schematic block diagram of signal-processing system 100, which implements a conventional linearization scheme that employs digital pre-distortion to linearize an analog sub-system 130 having a non-linear amplifier 134. Signal-processing system 100 receives a digital input signal x[n] and generates a linearized, amplified, analog output signal yamp(t).
In particular, the digital (e.g., baseband or IF (intermediate frequency)) input signal x[n] is processed by digital pre-distortion (DPD) module 114 to yield a pre-distorted digital signal xpd[n], which is converted into an analog pre-distorted signal xpd(t) using a digital-to-analog converter (DAC) 120. The output of the DAC is frequency converted to a desired frequency (e.g., RF (radio frequency)) using upconverter 132 to yield an RF analog pre-distorted signal xpd—rf(t)=Re{xpd(t)ejwct}. The RF signal xpd—rf(t) is amplified by non-linear amplifier 134 to yield the output signal yamp(t).
Purpose of Digital Pre-Distortion
The purpose of the digital pre-distortion in signal-processing system 100 is to ensure that the output signal yamp(t) is close to a linear scaled version of the (theoretical) analog version x(t) of the digital input signal x[n]. That is, yamp(t)≅Gx(t), where G is a constant. Note that, in the above notation, the digital signal x[n] is a sampled version of the analog signal x(t).
Computation of the Digital Pre-Distortion Function
In a typical implementation, a small portion of the amplifier output signal yamp(t) is removed at tap 140 and mixed down to a suitable intermediate frequency (IF) (or, alternatively, to baseband) using a downconverter 150. The resulting downconverted feedback signal yfb(t) is digitized using an analog-to-digital (ADC) converter 160 to yield digital feedback signal yfb[n].
The digital pre-distortion function implemented by module 114 is initially computed and subsequently adaptively updated by comparing the input signal x[n] with the feedback signal yfb[n] using a controller (not shown in FIG. 1) that may be implemented as part of or separate from DPD module 114. The computation can be performed in one of (at least) the following two ways:
1) In a non-real-time implementation, a block of samples of the input signal x[n] and a block of samples of the feedback signal yfb[n] are captured and processed by the controller offline to estimate the pre-distortion function. Such estimation is typically performed in a DSP (digital signal processor) or microcontroller.
2) In a real-time implementation, the pre-distortion function is updated by the controller on a sample-by-sample basis using an adaptive non-linear filter structure.
Pre-Processing
In both cases, one or both of the signals x[n] and yfb[n] are pre-processed before the controller estimates the pre-distortion function. The pre-processing aligns the delays, gains, and phases of the two signals. Mathematically, this can be described as follows:
Estimate the delay τ and the complex gain α that minimizes the cost function:E{(x[n−τ]−αyfb[n])2},where E{·} denotes the expectation value operator (or average). In the non-real-time implementation, minimizing the cost function reduces to estimating values for the delay τ and the complex gain α that minimize the cost function in the least-squares sense. Note that the delay τ and the complex gain α can be estimated successively and/or jointly. Also, note that the delay τ can be a fractional delay. Techniques for least-squares estimation are well-known. See, for example, W. H. Press, B. P. Flannery, S. A. Teukolsky, and W. T. Vetterling, Numerical Recipes: The Art of Scientific Computing (New York: Cambridge University Press, 1986), the teachings of which are incorporated herein by reference.
Digital Pre-Distortion Function
After the pre-processing, the digital pre-distortion can be described as estimating the arbitrary non-linear function ƒpd(·) that minimizes the cost function:E{(ƒpd(x[n−τ],x[n−τ−1],x[n−τ+1], . . . )−αyfb[n])2}.  (1)
Limitations of Prior Art
FIG. 2, which corresponds to FIG. 5 of U.S. Pat. No. 7,251,293, shows a block diagram of a digital pre-distortion architecture corresponding to the following Equation (2):
                                                        x              pd                        ⁡                          [                              n                ′                            ]                                =                                                                      f                  0                                ⁡                                  (                                      a                    ⁡                                          [                      n                      ]                                                        )                                            ·                              x                ⁡                                  [                                      n                    -                                          d                      0                                                        ]                                                      +                                          (                                                                            f                      1                                        ⁡                                          (                                              a                        ⁡                                                  [                          n                          ]                                                                    )                                                        ·                                      x                    ⁡                                          [                                              n                        -                                                  d                          0                                                                    ]                                                                      )                            *                                                h                  d                                ⁡                                  [                  n                  ]                                            *                                                h                  P                                ⁡                                  [                  n                  ]                                                                    ,                              +                          (                                                                    f                    2                                    ⁡                                      (                                          a                      ⁡                                              [                        n                        ]                                                              )                                                  ·                                  x                  ⁡                                      [                                          n                      -                                              d                        0                                                              ]                                                              )                                *                                    h              d                        ⁡                          [              n              ]                                *                                    h              N                        ⁡                          [              n              ]                                                          (        2        )            where:
Complex input signal x[n]=I+jQ;
Complex pre-distorted signal xpd[n′]=I′+jQ′ is the n′-th output sample corresponding to n-th input sample;
Input signal power a[n]=∥x[n]∥2=I2+Q2 generated by power detector 502 of FIG. 2,
Delay d0 is a synchronization delay applied by Delay—0 block 504 of FIG. 2 to compensate for the processing delay of power detector 502;
x[n−d0] is the delayed input signal generated by Delay—0 block 504;
Delay d1 is a synchronization delay applied by Delay—1 block 510 of FIG. 2 to compensate for the processing delays of filters 518, 520, 526, and 528. Note that the use of sample index n′ in the output sample xpd[n′] represents the effect of delays d0 and d1;
ƒ0(·), ƒ1(·), ƒ2(·) are (possibly non-linear) polynomial functions of the input signal power a[n] and are represented by Lookup Table #0 506, Lookup Table #1 514, and Lookup Table #2 522 of FIG. 2, respectively;
hd[·] is the impulse response of each differentiator filter 518 and 526 of FIG. 2;
hP[·],hN[·] are the impulse responses of positive and negative Hilbert filters 520 and 528 of FIG. 2 for selecting the positive and negative frequencies, respectively;
“·” represents the complex multiplication operator of complex multipliers 508, 516, and 524 of FIG. 2;
“*” is the convolution operator, with x[n]*h[n] representing the output of filter h corresponding to the nth input sample x[n]; and
Summation block 512 of FIG. 2 represents the addition operations in Equation (2).
Pre-distortion architectures such as those shown in FIG. 2 do not provide adequate linearization for certain amplifier designs under some specific signaling conditions. An example is pre-distortion with extremely wideband signals and Doherty amplifiers.